2 // AMPurpleJabberMoodTooltip.m
5 // Created by Andreas Monitzer on 2007-06-12.
6 // Copyright 2007 Andreas Monitzer. All rights reserved.
9 #import "AMPurpleJabberMoodTooltip.h"
10 #import "ESPurpleJabberAccount.h"
11 #import <Adium/AIListContact.h>
12 #import <Libpurple/blist.h>
14 @implementation AMPurpleJabberMoodTooltip
16 - (NSString *)labelForObject:(AIListObject *)inObject {
17 if ([inObject isKindOfClass:[AIListContact class]] &&
18 [[(AIListContact *)inObject account] isKindOfClass:[ESPurpleJabberAccount class]]) {
19 PurpleAccount *account = [(ESPurpleJabberAccount *)[(AIListContact *)inObject account] purpleAccount];
20 PurpleBuddy *buddy = (account ? purple_find_buddy(account, [[inObject UID] UTF8String]) : nil);
21 PurplePresence *presence = (buddy ? purple_buddy_get_presence(buddy) : nil);
22 PurpleStatus *status = (presence ? purple_presence_get_active_status(presence) : nil);
23 PurpleValue *value = (status ? purple_status_get_attr_value(status, "mood") : nil);
25 if(value && (purple_value_get_type(value) == PURPLE_TYPE_STRING) && purple_value_get_string(value))
26 return AILocalizedString(@"Mood","user mood tooltip title");
32 - (NSAttributedString *)entryForObject:(AIListObject *)inObject {
33 if ([inObject isKindOfClass:[AIListContact class]] &&
34 [[(AIListContact *)inObject account] isKindOfClass:[ESPurpleJabberAccount class]]) {
35 PurpleAccount *account = [(ESPurpleJabberAccount *)[(AIListContact *)inObject account] purpleAccount];
36 PurpleBuddy *buddy = (account ? purple_find_buddy(account, [[inObject UID] UTF8String]) : nil);
37 PurplePresence *presence = (buddy ? purple_buddy_get_presence(buddy) : nil);
38 PurpleStatus *status = (presence ? purple_presence_get_active_status(presence) : nil);
39 PurpleValue *value = (status ? purple_status_get_attr_value(status, "mood") : nil);
41 if(value && (purple_value_get_type(value) == PURPLE_TYPE_STRING)) {
42 const char *mood = purple_value_get_string(value);
47 value = purple_status_get_attr_value(status, "moodtext");
48 if(value && purple_value_get_type(value) == PURPLE_TYPE_STRING && purple_value_get_string(value) && purple_value_get_string(value)[0] != '\0')
49 str = [NSString stringWithFormat:@"%@ (%@)",AILocalizedString([NSString stringWithUTF8String:mood],"This one won't work automatically. See XEP for all possible values"), [NSString stringWithUTF8String:purple_value_get_string(value)]];
51 str = [NSString stringWithString:AILocalizedString([NSString stringWithUTF8String:mood],"This one won't work automatically. See XEP for all possible values")];
53 return [[[NSAttributedString alloc] initWithString:str attributes:nil] autorelease];